/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upc.clase.demo.dao.impl;

import edu.upc.clase.demo.dao.RespuestaDao;
import edu.upc.clase.demo.entity.Respuesta;
import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import org.springframework.stereotype.Repository;

/**
 *
 * @author carlos
 */
@Repository
public class RespuestaDaoImpl extends SimpleJdbcDaoSupport implements RespuestaDao{
    
     private static Logger log = LoggerFactory.getLogger(RespuestaDaoImpl.class);
    
    @Autowired
    public RespuestaDaoImpl (DataSource dataSource){
        log.info("Asignando el dataSource");
        setDataSource (dataSource);
    }
    
    @Override
    public Integer insertar(Respuesta objRespuesta){
        getJdbcTemplate().update("insert into respuesta (descRespuesta,fechaRespuesta,idPregunta,idUsuario)"
                + " values (?,?, ?, ?)", objRespuesta.getDesRespuesta(), objRespuesta.getFechaRespuesta(),
                objRespuesta.getIdPregunta(), objRespuesta.getIdUsuario());
    return getSimpleJdbcTemplate().queryForInt("select last_insert_id()");
    }
    
    @Override
    public void eliminar (Respuesta respuesta){
          getJdbcTemplate().update(
                  "delete from Respuesta where idRespuesta = ?", respuesta.getIdRespuesta());
    }

 

    @Override
    public void actualizar(Respuesta objRespuesta) {
       getJdbcTemplate().update(
                "update Pregunta set descRespuesta = ?, fechaRespuesta = ?, idPregunta = ?, idUsuario = ? where idRespuesta = ?",
                objRespuesta.getDesRespuesta(), objRespuesta.getFechaRespuesta(),
                objRespuesta.getIdPregunta(), objRespuesta.getIdUsuario());
    }

    @Override
    public Respuesta buscar(Integer idRespuesta) {
        try {
            return getSimpleJdbcTemplate().queryForObject(
                    "select idRespuesta, descRespuesta, fechaRespuesta, idPregunta, idUsuario from Respuesta where idRespuesta=?",
                    new BeanPropertyRowMapper<Respuesta>(Respuesta.class), idRespuesta);
        } catch (EmptyResultDataAccessException e) {
            return null;
        }
    }

  
}
